#ifndef CODEHANDLE_H
#define CODEHANDLE_H
#include<QString>
#include<QFile>
#include<QDebug>
#include<Util/handlefile.h>
class CodeHandle
{
public:
    CodeHandle();
    ~CodeHandle();
    bool init(const QString MainFilePath);                                                       //读取模板文件
    bool setMdlName(const QString MdlName);                                    //${MdlFileName}    					mdl文件名,egs: Fvcom_Step1.mdl
    bool setModelRelativeLocation(const QString ModelPath);            //${ModelRelativeLocation}             模型程序所在相对路径，egs: ./find_obc_step1.exe
    bool setInputParameter(const QString InputParameter);              //${InputParameter}				    模型程序输入参数，若为空则替换为null或者""

    bool beginAddResEvent();

                                                                       //${EventName}		  	//Event 的名字，egs:getDom
                                                                       //
                                                                       //${MethodRelativePath} 	//转换方法相对路径，egs: ./SMSTin/SMSTin.exe
                                                                       //
                                                                       //${SrcFileRelativePath} 	//输入文件源文件的相对路径, egs：./ch_grd.dat
    bool addResEvent(const QString EventName,const QString MethodRelativePath,const QString SrcFileRelativePath);
    bool endAddResEvent();

    bool beginAddNoResEvent();
                                                                       // ${EventName}			  //结果文件事件名，egs:Obc_Xy
                                                                       //
                                                                       // ${MethodRelativePath} 	//转换方法相对路径，egs: ./Obc_Xy/Obc_Xy.exe
                                                                       //
                                                                       // ${SrcFileRelativePath} 	//输出文件源文件的相对路径, egs：./ch_obc_xy.dat
    bool addNoResEvent(const QString EventName,const QString MethodRelativePath,const QString SrcFileRelativePath);
    bool endAddNoResEvent();

    QString returnMainStr();

    bool SaveMainFile(QString FilePath,QString ContentStr);
    bool SaveMainFile(QString FilePath);
private:
    QString ResEventTempStr="";
    QString NoResEventTempStr="";
    QString MainStr = "";
    QString InputFConversionMethodsStr = "";
    QString ResultConversionMethodsStr = "";

     bool setInputFConversionMethods(const QString InputFConversionMethodsStr);          //${InputConversionMethods}         	    输入文件转换代码区域
     bool setResultConversionMethods(const QString ResultConversionMethodsStr);          //${ResultConversionMethods}           模型运行结果文件转换区域
};

#endif // CODEHANDLE_H
